/**
 * @author Chengzi Xu
 */

package cn.edu.sjtu.stap.sdg;

public enum SdgEdgeKind {

    /**
     * exists between: 1. call site's actual parameter node and target method's
     * formal parameter node 2. pointcut node and advice node
     */
    PARAMETER_TRANSIT("Parameter_Transit"),

    /**
     * exists between: SdgNodes that have control dependence
     */
    CONTROL_DEPENDENCE("Control_Dependence"),

    /**
     * exists between: SdgNodes that have data dependence
     */
    DATA_DEPENDENCE("Data_Dependence"),

    /**
     * exists between: call site and target method
     */
    CALL_EDGE("Call_Edge"),

    /**
     * exists between: shadow method and pointcut
     */
    CROSSCUTTING_EDGE("Crosscutting_Edge"),

    /**
     * exists between: pointcut and advice
     */
    ADVICE_EDGE("Advice_Edge");

    private String name;

    private SdgEdgeKind(String nm) {
        name = nm;
    }

    public String getName() {
        return name;
    }
}
